home *** CD-ROM | disk | FTP | other *** search
/ Champak 120 / Vol 120.iso / games / anacroz.swf / scripts / frame_2 / DoAction.as
Text File  |  2010-11-09  |  65KB  |  2,162 lines

  1. function getTentativax(k, dirx, diry)
  2. {
  3.    if(dirx == 1 && diry == 0)
  4.    {
  5.       if(k == 0 || k == 1 || k == 2)
  6.       {
  7.          return 1;
  8.       }
  9.       if(k == 3 || k == 4)
  10.       {
  11.          return 0;
  12.       }
  13.       return -1;
  14.    }
  15.    if(dirx == 1 && diry == 1)
  16.    {
  17.       if(k == 1 || k == 2 || k == 4)
  18.       {
  19.          return 1;
  20.       }
  21.       if(k == 3 || k == 7)
  22.       {
  23.          return 0;
  24.       }
  25.       return -1;
  26.    }
  27.    if(dirx == 1 && diry == -1)
  28.    {
  29.       if(k == 1 || k == 3 || k == 5)
  30.       {
  31.          return 1;
  32.       }
  33.       if(k == 2 || k == 7)
  34.       {
  35.          return 0;
  36.       }
  37.       return -1;
  38.    }
  39.    if(dirx == 0 && diry == -1)
  40.    {
  41.       if(k == 3 || k == 5 || k == 7)
  42.       {
  43.          return 1;
  44.       }
  45.       if(k == 8 || k == 1)
  46.       {
  47.          return 0;
  48.       }
  49.       return -1;
  50.    }
  51.    if(dirx == 0 && diry == 1)
  52.    {
  53.       if(k == 3 || k == 5 || k == 7)
  54.       {
  55.          return 1;
  56.       }
  57.       if(k == 8 || k == 1)
  58.       {
  59.          return 0;
  60.       }
  61.       return -1;
  62.    }
  63.    if(dirx == -1 && diry == 1)
  64.    {
  65.       if(k == 8 || k == 5 || k == 7)
  66.       {
  67.          return 1;
  68.       }
  69.       if(k == 6 || k == 3)
  70.       {
  71.          return 0;
  72.       }
  73.       return -1;
  74.    }
  75.    if(dirx == -1 && diry == 0)
  76.    {
  77.       if(k == 7 || k == 8 || k == 6)
  78.       {
  79.          return 1;
  80.       }
  81.       if(k == 5 || k == 4)
  82.       {
  83.          return 0;
  84.       }
  85.       return -1;
  86.    }
  87.    if(dirx == -1 && diry == -1)
  88.    {
  89.       if(k == 5 || k == 7 || k == 8)
  90.       {
  91.          return 1;
  92.       }
  93.       if(k == 6 || k == 3)
  94.       {
  95.          return 0;
  96.       }
  97.       return -1;
  98.    }
  99. }
  100. function getTentativay(k, dirx, diry)
  101. {
  102.    if(dirx == 1 && diry == 0)
  103.    {
  104.       if(k == 7 || k == 5 || k == 3)
  105.       {
  106.          return 1;
  107.       }
  108.       if(k == 1 || k == 8)
  109.       {
  110.          return 0;
  111.       }
  112.       return -1;
  113.    }
  114.    if(dirx == 1 && diry == 1)
  115.    {
  116.       if(k == 5 || k == 3 || k == 1)
  117.       {
  118.          return 1;
  119.       }
  120.       if(k == 2 || k == 6)
  121.       {
  122.          return 0;
  123.       }
  124.       return -1;
  125.    }
  126.    if(dirx == 1 && diry == -1)
  127.    {
  128.       if(k == 8 || k == 7 || k == 5)
  129.       {
  130.          return 1;
  131.       }
  132.       if(k == 3 || k == 6)
  133.       {
  134.          return 0;
  135.       }
  136.       return -1;
  137.    }
  138.    if(dirx == 0 && diry == -1)
  139.    {
  140.       if(k == 6 || k == 8 || k == 7)
  141.       {
  142.          return 1;
  143.       }
  144.       if(k == 5 || k == 4)
  145.       {
  146.          return 0;
  147.       }
  148.       return -1;
  149.    }
  150.    if(dirx == 0 && diry == 1)
  151.    {
  152.       if(k == 2 || k == 1 || k == 3)
  153.       {
  154.          return 1;
  155.       }
  156.       if(k == 4 || k == 5)
  157.       {
  158.          return 0;
  159.       }
  160.       return -1;
  161.    }
  162.    if(dirx == -1 && diry == 1)
  163.    {
  164.       if(k == 1 || k == 5 || k == 3)
  165.       {
  166.          return 1;
  167.       }
  168.       if(k == 7 || k == 2)
  169.       {
  170.          return 0;
  171.       }
  172.       return -1;
  173.    }
  174.    if(dirx == -1 && diry == 0)
  175.    {
  176.       if(k == 2 || k == 5 || k == 6)
  177.       {
  178.          return 1;
  179.       }
  180.       if(k == 8 || k == 1)
  181.       {
  182.          return 0;
  183.       }
  184.       return -1;
  185.    }
  186.    if(dirx == -1 && diry == -1)
  187.    {
  188.       if(k == 4 || k == 6 || k == 8)
  189.       {
  190.          return 1;
  191.       }
  192.       if(k == 7 || k == 2)
  193.       {
  194.          return 0;
  195.       }
  196.       return -1;
  197.    }
  198. }
  199. function atualizarPosicoes()
  200. {
  201.    var _loc2_ = undefined;
  202.    var _loc5_ = undefined;
  203.    for(var _loc6_ in tropa1.soldados)
  204.    {
  205.       if(tropa1.soldados[_loc6_].status)
  206.       {
  207.          if(tropa1.soldados[_loc6_].andando)
  208.          {
  209.             var _loc4_ = _root["sd" + _loc6_]._x != tropa1.soldados[_loc6_].gox;
  210.             var _loc3_ = _root["sd" + _loc6_]._y != tropa1.soldados[_loc6_].goy;
  211.             if(_loc4_ || _loc3_)
  212.             {
  213.                if(tropa1.soldados[_loc6_].classe == CAV || tropa1.soldados[_loc6_].classe == ARQ)
  214.                {
  215.                   _loc2_ = 4;
  216.                   _loc5_ = 2;
  217.                }
  218.                else
  219.                {
  220.                   _loc2_ = 2;
  221.                   _loc5_ = 1;
  222.                }
  223.                _root["sd" + _loc6_]._x += _loc2_ * getisox(_loc6_);
  224.                _root["sd" + _loc6_]._y += _loc5_ * getisoy(_loc6_);
  225.                tropa1.soldados[_loc6_].deslocamento += _loc2_;
  226.             }
  227.             if(tropa1.soldados[_loc6_].deslocamento == 20)
  228.             {
  229.                tropa1.soldados[_loc6_].y += tropa1.soldados[_loc6_].diry;
  230.                tropa1.soldados[_loc6_].x += tropa1.soldados[_loc6_].dirx;
  231.                _root["sd" + _loc6_].swapDepths(nivelSoldados + 32 + getprofundidade(tropa1.soldados[_loc6_].x,tropa1.soldados[_loc6_].y));
  232.                grid[tropa1.soldados[_loc6_].y - tropa1.soldados[_loc6_].diry][tropa1.soldados[_loc6_].x - tropa1.soldados[_loc6_].dirx] = -1;
  233.             }
  234.             if(!_loc4_ && !_loc3_)
  235.             {
  236.                tropa1.soldados[_loc6_].andando = false;
  237.             }
  238.          }
  239.       }
  240.    }
  241. }
  242. function andar(i, dirx, diry)
  243. {
  244.    var _loc3_ = tropa1.soldados[i].y + diry;
  245.    var _loc4_ = tropa1.soldados[i].x + dirx;
  246.    if(_loc4_ < 0 || _loc4_ >= sizew || _loc3_ < 0 || _loc3_ >= sizeh)
  247.    {
  248.       return false;
  249.    }
  250.    if(grid[_loc3_][_loc4_] == -1 && (tropa1.soldados[i].dirx || tropa1.soldados[i].diry))
  251.    {
  252.       tropa1.soldados[i].andando = true;
  253.       tropa1.soldados[i].deslocamento = 0;
  254.       grid[_loc3_][_loc4_] = i;
  255.       tropa1.soldados[i].gox = _root["sd" + i]._x + dx * getisox(i);
  256.       tropa1.soldados[i].goy = _root["sd" + i]._y + dy * getisoy(i);
  257.       return true;
  258.    }
  259.    return false;
  260. }
  261. function fuja(i)
  262. {
  263.    var _loc6_ = false;
  264.    var _loc3_ = -1;
  265.    var _loc5_ = tropa1.soldados[i].x;
  266.    var _loc4_ = tropa1.soldados[i].y;
  267.    var _loc2_ = -1;
  268.    while(_loc2_ < 2 && !_loc6_)
  269.    {
  270.       var _loc1_ = -1;
  271.       while(_loc1_ < 2 && !_loc6_)
  272.       {
  273.          if(!(_loc2_ + _loc4_ < 0 || _loc1_ + _loc5_ < 0 || _loc2_ + _loc4_ >= sizeh || _loc1_ + _loc5_ >= sizew))
  274.          {
  275.             _loc3_ = grid[_loc4_ + _loc2_][_loc5_ + _loc1_];
  276.             if(_loc3_ != -1 && _loc3_ != 500 && tropa1.soldados[_loc3_].tropa != tropa1.soldados[i].tropa)
  277.             {
  278.                _loc6_ = true;
  279.             }
  280.          }
  281.          _loc1_ = _loc1_ + 1;
  282.       }
  283.       _loc2_ = _loc2_ + 1;
  284.    }
  285.    if(_loc6_)
  286.    {
  287.       tropa1.soldados[i].alvo = _loc3_;
  288.    }
  289.    return undefined;
  290. }
  291. function arqueiroTarefa(i)
  292. {
  293.    if(tropa1.soldados[i].modo == 1)
  294.    {
  295.       fuja(i);
  296.    }
  297.    var _loc9_ = tropa1.soldados[i].estado;
  298.    var _loc8_ = tropa1.soldados[i].alvo;
  299.    if(_loc9_ == EST_PARADO)
  300.    {
  301.       if(lado1 != 0 && lado2 != 0)
  302.       {
  303.          setObjetivo(i);
  304.       }
  305.    }
  306.    var _loc10_ = tropa1.soldados[_loc8_].y - tropa1.soldados[i].y;
  307.    var _loc11_ = tropa1.soldados[_loc8_].x - tropa1.soldados[i].x;
  308.    tropa1.soldados[i].diry = _loc10_ >= 0 ? (_loc10_ <= 0 ? 0 : 1) : -1;
  309.    tropa1.soldados[i].dirx = _loc11_ >= 0 ? (_loc11_ <= 0 ? 0 : 1) : -1;
  310.    var _loc14_ = _loc10_ * _loc10_ + _loc11_ * _loc11_;
  311.    var _loc13_ = 9;
  312.    var _loc12_ = 81;
  313.    var _loc5_ = 1;
  314.    if(tropa1.soldados[i].modo != 2)
  315.    {
  316.       if(_loc14_ > _loc12_)
  317.       {
  318.          _loc9_ = EST_PERSEGUIR;
  319.          _loc5_ = 1;
  320.       }
  321.       else if(_loc14_ > _loc13_)
  322.       {
  323.          _loc9_ = EST_ATACAROFENSIVO;
  324.       }
  325.       else
  326.       {
  327.          _loc9_ = EST_PERSEGUIR;
  328.          _loc5_ = -1;
  329.       }
  330.    }
  331.    if(_loc9_ == EST_PERSEGUIR)
  332.    {
  333.       if(!tropa1.soldados[_loc8_].status)
  334.       {
  335.          mudarEstado(i,EST_PARADO);
  336.          return undefined;
  337.       }
  338.       if(tropa1.soldados[i].modo == 2)
  339.       {
  340.          _loc14_ = _loc10_ * _loc10_ + _loc11_ * _loc11_;
  341.          if(_loc14_ < 16)
  342.          {
  343.             tropa1.soldados[i].mododesejado = 1;
  344.          }
  345.       }
  346.       var _loc7_ = tropa1.soldados[i].dirx;
  347.       var _loc6_ = tropa1.soldados[i].diry;
  348.       var _loc2_ = 1;
  349.       while(_loc2_ < 9)
  350.       {
  351.          var _loc4_ = getTentativax(_loc5_ != 1 ? 9 - _loc2_ : _loc2_,_loc7_,_loc6_);
  352.          var _loc3_ = getTentativay(_loc5_ != 1 ? 9 - _loc2_ : _loc2_,_loc7_,_loc6_);
  353.          tropa1.soldados[i].dirx = _loc4_;
  354.          tropa1.soldados[i].diry = _loc3_;
  355.          if(andar(i,_loc4_,_loc3_))
  356.          {
  357.             mudarEstado(i,EST_PERSEGUIR);
  358.             break;
  359.          }
  360.          _loc2_ = _loc2_ + 1;
  361.       }
  362.       return undefined;
  363.    }
  364.    if(_loc9_ == EST_ATACAROFENSIVO)
  365.    {
  366.       if(!tropa1.soldados[_loc8_].status)
  367.       {
  368.          mudarEstado(i,EST_PARADO);
  369.          return undefined;
  370.       }
  371.       tropa1.soldados[i].diry = _loc10_ >= 0 ? (_loc10_ <= 0 ? 0 : 1) : -1;
  372.       tropa1.soldados[i].dirx = _loc11_ >= 0 ? (_loc11_ <= 0 ? 0 : 1) : -1;
  373.       if(tropa1.soldados[i].flecha++ == 15)
  374.       {
  375.          mudarEstado(i,EST_ATACAROFENSIVO);
  376.          var _loc15_ = new Flecha(tropa1.soldados[i].x,tropa1.soldados[i].y,tropa1.soldados[_loc8_].x,tropa1.soldados[_loc8_].y,flechaAtual++,i,"flecha",20);
  377.          flechas.push(_loc15_);
  378.          tropa1.soldados[i].flecha = 0;
  379.       }
  380.       return undefined;
  381.    }
  382.    if(_loc9_ == EST_PARADODEFENSIVO)
  383.    {
  384.       mudarEstado(i,EST_PERSEGUIR);
  385.       return undefined;
  386.    }
  387.    if(_loc9_ == EST_FAZERRECUO)
  388.    {
  389.       if(!tropa1.soldados[_loc8_].status)
  390.       {
  391.          mudarEstado(i,EST_PARADORECUO);
  392.          return undefined;
  393.       }
  394.       _loc10_ = tropa1.soldados[_loc8_].y - tropa1.soldados[i].y;
  395.       _loc11_ = tropa1.soldados[_loc8_].x - tropa1.soldados[i].x;
  396.       if(!isAdjacente(_loc11_,_loc10_))
  397.       {
  398.          mudarEstado(i,EST_PERSEGUIR);
  399.          return undefined;
  400.       }
  401.       tropa1.soldados[i].diry = _loc10_ >= 0 ? (_loc10_ <= 0 ? 0 : 1) : -1;
  402.       tropa1.soldados[i].dirx = _loc11_ >= 0 ? (_loc11_ <= 0 ? 0 : 1) : -1;
  403.       mudarEstado(i,EST_FAZERRECUO);
  404.       return undefined;
  405.    }
  406. }
  407. function guerreiroTarefa(i)
  408. {
  409.    var _loc13_ = tropa1.soldados[i].estado;
  410.    var _loc3_ = tropa1.soldados[i].alvo;
  411.    if(_loc13_ == EST_PARADO)
  412.    {
  413.       if(lado1 != 0 && lado2 != 0)
  414.       {
  415.          setObjetivo(i);
  416.       }
  417.       return undefined;
  418.    }
  419.    if(_loc13_ == EST_PERSEGUIR)
  420.    {
  421.       if(!tropa1.soldados[_loc3_].status)
  422.       {
  423.          mudarEstado(i,EST_PARADO);
  424.          return undefined;
  425.       }
  426.       var _loc14_ = tropa1.soldados[_loc3_].y - tropa1.soldados[i].y;
  427.       var _loc15_ = tropa1.soldados[_loc3_].x - tropa1.soldados[i].x;
  428.       tropa1.soldados[i].diry = _loc14_ >= 0 ? (_loc14_ <= 0 ? 0 : 1) : -1;
  429.       tropa1.soldados[i].dirx = _loc15_ >= 0 ? (_loc15_ <= 0 ? 0 : 1) : -1;
  430.       if(isAdjacente(_loc15_,_loc14_))
  431.       {
  432.          if(tropa1.soldados[i].modo == 0)
  433.          {
  434.             mudarEstado(i,EST_ATACAROFENSIVO);
  435.          }
  436.          return undefined;
  437.       }
  438.       if(tropa1.soldados[i].modo == 2)
  439.       {
  440.          var _loc16_ = _loc14_ * _loc14_ + _loc15_ * _loc15_;
  441.          if(_loc16_ < 16)
  442.          {
  443.             tropa1.soldados[i].mododesejado = 1;
  444.          }
  445.       }
  446.       var _loc10_ = tropa1.soldados[i].dirx;
  447.       var _loc9_ = tropa1.soldados[i].diry;
  448.       var _loc12_ = undefined;
  449.       var _loc11_ = undefined;
  450.       var _loc7_ = 1;
  451.       while(_loc7_ < 9)
  452.       {
  453.          tropa1.soldados[i].dirx = _loc12_ = getTentativax(_loc7_,_loc10_,_loc9_);
  454.          tropa1.soldados[i].diry = _loc11_ = getTentativay(_loc7_,_loc10_,_loc9_);
  455.          if(andar(i,_loc12_,_loc11_))
  456.          {
  457.             mudarEstado(i,EST_PERSEGUIR);
  458.             break;
  459.          }
  460.          _loc7_ = _loc7_ + 1;
  461.       }
  462.       return undefined;
  463.    }
  464.    if(_loc13_ == EST_ATACAROFENSIVO)
  465.    {
  466.       if(!tropa1.soldados[_loc3_].status)
  467.       {
  468.          mudarEstado(i,EST_PARADO);
  469.          return undefined;
  470.       }
  471.       _loc14_ = tropa1.soldados[_loc3_].y - tropa1.soldados[i].y;
  472.       _loc15_ = tropa1.soldados[_loc3_].x - tropa1.soldados[i].x;
  473.       if(!isAdjacente(_loc15_,_loc14_))
  474.       {
  475.          mudarEstado(i,EST_PERSEGUIR);
  476.          return undefined;
  477.       }
  478.       tropa1.soldados[i].diry = _loc14_ >= 0 ? (_loc14_ <= 0 ? 0 : 1) : -1;
  479.       tropa1.soldados[i].dirx = _loc15_ >= 0 ? (_loc15_ <= 0 ? 0 : 1) : -1;
  480.       if(!tropa1.soldados[i].atacando)
  481.       {
  482.          tropa1.soldados[i].atacando = true;
  483.          atacar(i,tropa1.soldados[i].alvo);
  484.          mudarEstado(i,EST_ATACAROFENSIVO);
  485.       }
  486.       return undefined;
  487.    }
  488.    if(_loc13_ == EST_ATACARDEFENSIVO || _loc13_ == EST_PARADODEFENSIVO)
  489.    {
  490.       var _loc5_ = tropa1.soldados[i].y;
  491.       var _loc6_ = tropa1.soldados[i].x;
  492.       var _loc8_ = false;
  493.       _loc3_ = -1;
  494.       var _loc4_ = -1;
  495.       while(_loc4_ < 2 && !_loc8_)
  496.       {
  497.          var _loc1_ = -1;
  498.          while(_loc1_ < 2 && !_loc8_)
  499.          {
  500.             if(!(_loc4_ + _loc5_ < 0 || _loc1_ + _loc6_ < 0 || _loc4_ + _loc5_ >= sizeh || _loc1_ + _loc6_ >= sizew))
  501.             {
  502.                _loc3_ = grid[_loc5_ + _loc4_][_loc6_ + _loc1_];
  503.                if(_loc3_ != -1 && _loc3_ != 500 && tropa1.soldados[_loc3_].tropa != tropa1.soldados[i].tropa)
  504.                {
  505.                   _loc8_ = true;
  506.                }
  507.             }
  508.             _loc1_ = _loc1_ + 1;
  509.          }
  510.          _loc4_ = _loc4_ + 1;
  511.       }
  512.       if(!_loc8_)
  513.       {
  514.          mudarEstado(i,EST_PARADODEFENSIVO);
  515.          tropa1.soldados[i].atacando = false;
  516.          return undefined;
  517.       }
  518.       tropa1.soldados[i].alvo = _loc3_;
  519.       _loc14_ = tropa1.soldados[_loc3_].y - tropa1.soldados[i].y;
  520.       _loc15_ = tropa1.soldados[_loc3_].x - tropa1.soldados[i].x;
  521.       tropa1.soldados[i].diry = _loc14_ >= 0 ? (_loc14_ <= 0 ? 0 : 1) : -1;
  522.       tropa1.soldados[i].dirx = _loc15_ >= 0 ? (_loc15_ <= 0 ? 0 : 1) : -1;
  523.       if(!tropa1.soldados[i].atacando)
  524.       {
  525.          tropa1.soldados[i].atacando = true;
  526.          atacar(i,tropa1.soldados[i].alvo);
  527.          mudarEstado(i,EST_ATACARDEFENSIVO);
  528.       }
  529.       return undefined;
  530.    }
  531.    if(_loc13_ == EST_FAZERRECUO)
  532.    {
  533.       if(!tropa1.soldados[_loc3_].status)
  534.       {
  535.          mudarEstado(i,EST_PARADORECUO);
  536.          return undefined;
  537.       }
  538.       _loc14_ = tropa1.soldados[_loc3_].y - tropa1.soldados[i].y;
  539.       _loc15_ = tropa1.soldados[_loc3_].x - tropa1.soldados[i].x;
  540.       if(!isAdjacente(_loc15_,_loc14_))
  541.       {
  542.          mudarEstado(i,EST_PERSEGUIR);
  543.          return undefined;
  544.       }
  545.       tropa1.soldados[i].diry = _loc14_ >= 0 ? (_loc14_ <= 0 ? 0 : 1) : -1;
  546.       tropa1.soldados[i].dirx = _loc15_ >= 0 ? (_loc15_ <= 0 ? 0 : 1) : -1;
  547.       mudarEstado(i,EST_FAZERRECUO);
  548.       return undefined;
  549.    }
  550. }
  551. function clerigoTarefa(i)
  552. {
  553.    if(tropa1.soldados[i].modo == 1)
  554.    {
  555.       fuja(i);
  556.    }
  557.    var _loc10_ = tropa1.soldados[i].estado;
  558.    var _loc9_ = tropa1.soldados[i].alvo;
  559.    if(_loc10_ == EST_PARADO)
  560.    {
  561.       if(lado1 != 0 && lado2 != 0)
  562.       {
  563.          setObjetivo(i);
  564.       }
  565.    }
  566.    var _loc11_ = tropa1.soldados[_loc9_].y - tropa1.soldados[i].y;
  567.    var _loc12_ = tropa1.soldados[_loc9_].x - tropa1.soldados[i].x;
  568.    tropa1.soldados[i].diry = _loc11_ >= 0 ? (_loc11_ <= 0 ? 0 : 1) : -1;
  569.    tropa1.soldados[i].dirx = _loc12_ >= 0 ? (_loc12_ <= 0 ? 0 : 1) : -1;
  570.    var _loc15_ = _loc11_ * _loc11_ + _loc12_ * _loc12_;
  571.    var _loc14_ = 9;
  572.    var _loc13_ = 81;
  573.    var _loc6_ = 1;
  574.    if(tropa1.soldados[i].modo != 2)
  575.    {
  576.       if(_loc15_ > _loc13_)
  577.       {
  578.          _loc10_ = EST_PERSEGUIR;
  579.          _loc6_ = 1;
  580.       }
  581.       else if(_loc15_ > _loc14_)
  582.       {
  583.          _loc10_ = EST_ATACAROFENSIVO;
  584.       }
  585.       else
  586.       {
  587.          _loc10_ = EST_PERSEGUIR;
  588.          _loc6_ = -1;
  589.       }
  590.    }
  591.    if(_loc10_ == EST_PERSEGUIR)
  592.    {
  593.       if(!tropa1.soldados[_loc9_].status)
  594.       {
  595.          mudarEstado(i,EST_PARADO);
  596.          return undefined;
  597.       }
  598.       if(tropa1.soldados[i].modo == 2)
  599.       {
  600.          _loc15_ = _loc11_ * _loc11_ + _loc12_ * _loc12_;
  601.          if(_loc15_ < 16)
  602.          {
  603.             tropa1.soldados[i].mododesejado = 1;
  604.          }
  605.       }
  606.       var _loc8_ = tropa1.soldados[i].dirx;
  607.       var _loc7_ = tropa1.soldados[i].diry;
  608.       var _loc3_ = 1;
  609.       while(_loc3_ < 9)
  610.       {
  611.          var _loc5_ = getTentativax(_loc6_ != 1 ? 9 - _loc3_ : _loc3_,_loc8_,_loc7_);
  612.          var _loc4_ = getTentativay(_loc6_ != 1 ? 9 - _loc3_ : _loc3_,_loc8_,_loc7_);
  613.          tropa1.soldados[i].dirx = _loc5_;
  614.          tropa1.soldados[i].diry = _loc4_;
  615.          if(andar(i,_loc5_,_loc4_))
  616.          {
  617.             mudarEstado(i,EST_PERSEGUIR);
  618.             break;
  619.          }
  620.          _loc3_ = _loc3_ + 1;
  621.       }
  622.       return undefined;
  623.    }
  624.    if(_loc10_ == EST_ATACAROFENSIVO)
  625.    {
  626.       if(!tropa1.soldados[_loc9_].status)
  627.       {
  628.          mudarEstado(i,EST_PARADO);
  629.          return undefined;
  630.       }
  631.       tropa1.soldados[i].diry = _loc11_ >= 0 ? (_loc11_ <= 0 ? 0 : 1) : -1;
  632.       tropa1.soldados[i].dirx = _loc12_ >= 0 ? (_loc12_ <= 0 ? 0 : 1) : -1;
  633.       mudarEstado(i,EST_ATACAROFENSIVO);
  634.       if(tropa1.soldados[i].classe == CLR)
  635.       {
  636.          if(Math.round(Math.random() * 20) == 0)
  637.          {
  638.             _root.magia(i,_loc9_,2);
  639.          }
  640.       }
  641.       else if(Math.round(Math.random() * 50) == 0)
  642.       {
  643.          _root.magia(i,_loc9_,1);
  644.       }
  645.       else if(Math.round(Math.random() * 50) == 0)
  646.       {
  647.          _root.magia(i,_loc9_,0);
  648.       }
  649.       return undefined;
  650.    }
  651.    if(_loc10_ == EST_PARADODEFENSIVO)
  652.    {
  653.       mudarEstado(i,EST_PERSEGUIR);
  654.       return undefined;
  655.    }
  656.    if(_loc10_ == EST_FAZERRECUO)
  657.    {
  658.       if(!tropa1.soldados[_loc9_].status)
  659.       {
  660.          mudarEstado(i,EST_PARADORECUO);
  661.          return undefined;
  662.       }
  663.       _loc11_ = tropa1.soldados[_loc9_].y - tropa1.soldados[i].y;
  664.       _loc12_ = tropa1.soldados[_loc9_].x - tropa1.soldados[i].x;
  665.       if(!isAdjacente(_loc12_,_loc11_))
  666.       {
  667.          mudarEstado(i,EST_PERSEGUIR);
  668.          return undefined;
  669.       }
  670.       tropa1.soldados[i].diry = _loc11_ >= 0 ? (_loc11_ <= 0 ? 0 : 1) : -1;
  671.       tropa1.soldados[i].dirx = _loc12_ >= 0 ? (_loc12_ <= 0 ? 0 : 1) : -1;
  672.       mudarEstado(i,EST_FAZERRECUO);
  673.       return undefined;
  674.    }
  675. }
  676. function atacar(i, j)
  677. {
  678.    if(j == -1)
  679.    {
  680.       return undefined;
  681.    }
  682.    if(!tropa1.soldados[j].status)
  683.    {
  684.       return undefined;
  685.    }
  686.    _root.calculaDano(tropa1.soldados[i],tropa1.soldados[j],j);
  687.    if(j == selecionado)
  688.    {
  689.       _root.painel_status.edPV = tropa1.soldados[j].getPV();
  690.    }
  691.    if(tropa1.soldados[j].getPV() <= 0)
  692.    {
  693.       tropa1.soldados[i].atacando = false;
  694.       tropa1.soldados[j].status = false;
  695.       mudarEstado(j,EST_MORRER);
  696.       if(tropa1.soldados[j].tropa == 1)
  697.       {
  698.          lado1--;
  699.          _root.painel_jogo.soldados = lado1;
  700.       }
  701.       else
  702.       {
  703.          lado2--;
  704.       }
  705.       morri(j);
  706.       mudarEstado(i,EST_PARADO);
  707.    }
  708. }
  709. function magia(i, j, m)
  710. {
  711.    if(j == -1)
  712.    {
  713.       return undefined;
  714.    }
  715.    if(!tropa1.soldados[j].status)
  716.    {
  717.       return undefined;
  718.    }
  719.    if(tropa1.soldados[i].getPM() <= 0)
  720.    {
  721.       return undefined;
  722.    }
  723.    if(_root.mg_valores[m][3] > tropa1.soldados[i].getPM())
  724.    {
  725.       return undefined;
  726.    }
  727.    var _loc4_ = undefined;
  728.    _root["sd" + i].gotoAndStop("ataca" + tropa1.soldados[i].dirx + tropa1.soldados[i].diry);
  729.    _root["sd" + i]["ataca" + tropa1.soldados[i].dirx + tropa1.soldados[i].diry].play();
  730.    switch(m)
  731.    {
  732.       case 0:
  733.          _loc4_ = tropa1.soldados[i].getPM() - _root.mg_valores[m][3];
  734.          tropa1.soldados[i].setPM(_loc4_);
  735.          if(i == selecionado)
  736.          {
  737.             _root.painel_status.edPM = _loc4_;
  738.          }
  739.          _root.attachMovie("fireball","fireball" + flechaAtual,3000 + flechaAtual);
  740.          _root["fireball" + flechaAtual]._x = _root["sd" + j]._x;
  741.          _root["fireball" + flechaAtual++]._y = _root["sd" + j]._y;
  742.          _root.fx.attachSound("boladefogo");
  743.          _root.fx.start();
  744.          _root.calculaMagiaDano(tropa1.soldados[i],tropa1.soldados[j],j,m);
  745.          break;
  746.       case 1:
  747.          _root.attachMovie("thunder","thunder" + flechaAtual,3000 + flechaAtual);
  748.          _root["thunder" + flechaAtual]._x = _root["sd" + j]._x;
  749.          _root["thunder" + flechaAtual++]._y = _root["sd" + j]._y;
  750.          _root.fx.attachSound("raio");
  751.          _root.fx.start();
  752.          _root.calculaMagiaDano(tropa1.soldados[i],tropa1.soldados[j],j,m);
  753.          _loc4_ = tropa1.soldados[i].getPM() - _root.mg_valores[m][3];
  754.          tropa1.soldados[i].setPM(_loc4_);
  755.          if(i == selecionado)
  756.          {
  757.             _root.painel_status.edPM = _loc4_;
  758.          }
  759.          break;
  760.       case 2:
  761.          _root.attachMovie("curaleve","curaleve" + flechaAtual,3000 + flechaAtual);
  762.          _root["curaleve" + flechaAtual]._x = _root["sd" + j]._x;
  763.          _root["curaleve" + flechaAtual++]._y = _root["sd" + j]._y - 90;
  764.          _root.fx.attachSound("cura");
  765.          _root.fx.start();
  766.          _root.curar(i,j);
  767.    }
  768.    if(tropa1.soldados[j].getPV() <= 0)
  769.    {
  770.       tropa1.soldados[i].atacando = false;
  771.       tropa1.soldados[j].status = false;
  772.       mudarEstado(j,EST_MORRER);
  773.       if(tropa1.soldados[j].tropa == 1)
  774.       {
  775.          lado1 = _loc0_ = lado1 - 1;
  776.          _root.painel_jogo.soldados = _loc0_;
  777.       }
  778.       else
  779.       {
  780.          lado2--;
  781.       }
  782.       morri(j);
  783.       mudarEstado(i,EST_PARADO);
  784.    }
  785. }
  786. function curar(i, j)
  787. {
  788.    if(j == -1)
  789.    {
  790.       return undefined;
  791.    }
  792.    if(!tropa1.soldados[j].status)
  793.    {
  794.       return undefined;
  795.    }
  796.    if(tropa1.soldados[i].getPM() <= 0)
  797.    {
  798.       return undefined;
  799.    }
  800.    _root["sd" + j].msg_dano.valor = "<font size=\'13\' color=\'#006600\'><b>+" + _root.mg_valores[2][2] + "</b></font>";
  801.    _root["sd" + j].msg_dano.gotoAndPlay(1);
  802.    tropa1.soldados[i].setPM(tropa1.soldados[i].getPM() - _root.mg_valores[2][3]);
  803.    if(i == selecionado)
  804.    {
  805.       _root.painel_status.edPM = tropa1.soldados[i].getPM();
  806.    }
  807.    if(tropa1.soldados[j].getPV() < tropa1.soldados[j].getMaxPV())
  808.    {
  809.       if(tropa1.soldados[j].getPV() + _root.mg_valores[2][2] > tropa1.soldados[j].getMaxPV())
  810.       {
  811.          tropa1.soldados[j].setPV(tropa1.soldados[j].getMaxPV());
  812.       }
  813.       else
  814.       {
  815.          tropa1.soldados[j].setPV(tropa1.soldados[j].getPV() + _root.mg_valores[2][2]);
  816.       }
  817.       if(j == selecionado)
  818.       {
  819.          _root.painel_status.edPV = tropa1.soldados[j].getPV();
  820.       }
  821.    }
  822. }
  823. function flechadano(i, x, y, id)
  824. {
  825.    var _loc2_ = grid[y][x];
  826.    if(_loc2_ == -1)
  827.    {
  828.       return undefined;
  829.    }
  830.    if(!tropa1.soldados[_loc2_].status)
  831.    {
  832.       return undefined;
  833.    }
  834.    _root.calculaDano(tropa1.soldados[id],tropa1.soldados[_loc2_],_loc2_);
  835.    if(_loc2_ == selecionado)
  836.    {
  837.       _root.painel_status.edPV = tropa1.soldados[_loc2_].getPV();
  838.    }
  839.    if(tropa1.soldados[_loc2_].getPV() <= 0)
  840.    {
  841.       tropa1.soldados[_loc2_].status = false;
  842.       tropa1.soldados[i].atacando = false;
  843.       mudarEstado(_loc2_,EST_MORRER);
  844.       if(tropa1.soldados[_loc2_].tropa == 1)
  845.       {
  846.          lado1--;
  847.          _root.painel_jogo.soldados--;
  848.       }
  849.       else
  850.       {
  851.          lado2--;
  852.       }
  853.       morri(_loc2_);
  854.       mudarEstado(i,EST_PARADO);
  855.    }
  856. }
  857. function morri(i)
  858. {
  859.    var _loc4_ = tropa1.soldados[i].x;
  860.    var _loc3_ = tropa1.soldados[i].y;
  861.    grid[_loc3_][_loc4_] = -1;
  862.    if(tropa1.soldados[i].deslocamento < 20)
  863.    {
  864.       grid[_loc3_ + tropa1.soldados[i].diry][_loc4_ + tropa1.soldados[i].dirx] = -1;
  865.    }
  866.    _root["sd" + i].swapDepths(nivelSoldados + nivelAtual[_loc3_ - _loc4_ + sizew]++ + getprofundidade(_loc4_,_loc3_));
  867.    _root["sd" + i].barra._visible = false;
  868.    if(i == selecionado)
  869.    {
  870.       removeMovieClip("_root.alvo2");
  871.       _root.alvo2.stopDrag();
  872.       _root.magiaAtiva = false;
  873.       Mouse.show();
  874.    }
  875.    if(tropa1.soldados[i].isLeader() && tropa1.soldados[i].tropa == 1)
  876.    {
  877.       _root.showMessage(2);
  878.       return undefined;
  879.    }
  880.    if(lado2 == 0)
  881.    {
  882.       _root.showMessage(1);
  883.    }
  884.    else if(lado1 == 0)
  885.    {
  886.       _root.showMessage(2);
  887.    }
  888. }
  889. function atualizarTarefa()
  890. {
  891.    for(var _loc1_ in tropa1.soldados)
  892.    {
  893.       if(!(tropa1.soldados[_loc1_].andando || !tropa1.soldados[_loc1_].status || _loc1_ == selecionado))
  894.       {
  895.          if(tropa1.soldados[_loc1_].modo != tropa1.soldados[_loc1_].mododesejado)
  896.          {
  897.             if(tropa1.soldados[_loc1_].mododesejado == 0)
  898.             {
  899.                mudarEstado(_loc1_,EST_PARADO);
  900.             }
  901.             else if(tropa1.soldados[_loc1_].mododesejado == 1)
  902.             {
  903.                mudarEstado(_loc1_,EST_PARADODEFENSIVO);
  904.             }
  905.             else if(tropa1.soldados[_loc1_].mododesejado == 2)
  906.             {
  907.                tropa1.soldados[_loc1_].alvo = tropa1.idlider;
  908.                mudarEstado(_loc1_,EST_FAZERRECUO);
  909.             }
  910.             tropa1.soldados[_loc1_].modo = tropa1.soldados[_loc1_].mododesejado;
  911.          }
  912.          if(tropa1.soldados[_loc1_].classe == ARQ)
  913.          {
  914.             arqueiroTarefa(_loc1_);
  915.          }
  916.          else if(tropa1.soldados[_loc1_].classe == MAG)
  917.          {
  918.             clerigoTarefa(_loc1_);
  919.          }
  920.          else if(tropa1.soldados[_loc1_].classe == CLR)
  921.          {
  922.             clerigoTarefa(_loc1_);
  923.          }
  924.          else if(tropa1.soldados[_loc1_].classe == GRR)
  925.          {
  926.             guerreiroTarefa(_loc1_);
  927.          }
  928.          else if(tropa1.soldados[_loc1_].classe == CAV)
  929.          {
  930.             guerreiroTarefa(_loc1_);
  931.          }
  932.       }
  933.    }
  934. }
  935. function mudarEstado(i, estado)
  936. {
  937.    tropa1.soldados[i].estado = estado;
  938.    if((estado == EST_ATACAROFENSIVO || estado == EST_ATACARDEFENSIVO || estado == EST_CURAR) && tropa1.soldados[i].status)
  939.    {
  940.       _root["sd" + i].gotoAndStop("ataca" + tropa1.soldados[i].dirx + tropa1.soldados[i].diry);
  941.       _root["sd" + i]["ataca" + tropa1.soldados[i].dirx + tropa1.soldados[i].diry].play();
  942.    }
  943.    else if(estado == EST_PERSEGUIR && tropa1.soldados[i].status)
  944.    {
  945.       _root["sd" + i].gotoAndStop("move" + tropa1.soldados[i].dirx + tropa1.soldados[i].diry);
  946.       _root["sd" + i]["move" + tropa1.soldados[i].dirx + tropa1.soldados[i].diry].play();
  947.    }
  948.    else if(estado == EST_MORRER)
  949.    {
  950.       _root["sd" + i].gotoAndStop("morre");
  951.       _root["sd" + i].morre.play();
  952.    }
  953.    else if(estado == EST_PARADODEFENSIVO && tropa1.soldados[i].status)
  954.    {
  955.       _root["sd" + i].gotoAndStop("move" + tropa1.soldados[i].dirx + tropa1.soldados[i].diry);
  956.       _root["sd" + i]["move" + tropa1.soldados[i].dirx + tropa1.soldados[i].diry].stop();
  957.    }
  958.    else if(estado == EST_PARADO && tropa1.soldados[i].status)
  959.    {
  960.       _root["sd" + i].gotoAndStop(1);
  961.       _root["sd" + i]["move-11"].stop();
  962.    }
  963. }
  964. function setObjetivo(i)
  965. {
  966.    if(lado1 == 0 || lado2 == 0)
  967.    {
  968.       mudarEstado(i,EST_PARADO);
  969.       tropa1.soldados[i].alvo = -1;
  970.       return undefined;
  971.    }
  972.    if(tropa1.soldados[i].classe == CLR)
  973.    {
  974.       mudarEstado(i,EST_PERSEGUIR);
  975.       var _loc6_ = -1;
  976.       for(var _loc9_ in tropa1.soldados)
  977.       {
  978.          if(i != _loc9_)
  979.          {
  980.             if(!(tropa1.soldados[_loc9_].tropa != tropa1.soldados[i].tropa || !tropa1.soldados[_loc9_].status || tropa1.soldados[_loc9_].classe == CLR))
  981.             {
  982.                if(tropa1.soldados[_loc9_].getMaxPV() - tropa1.soldados[_loc9_].PV >= 60)
  983.                {
  984.                   if(_loc6_ == -1 || tropa1.soldados[_loc9_].PV < tropa1.soldados[_loc6_].PV)
  985.                   {
  986.                      _loc6_ = _loc9_;
  987.                   }
  988.                }
  989.             }
  990.          }
  991.       }
  992.       if(_loc6_ != -1)
  993.       {
  994.          tropa1.soldados[i].alvo = _loc6_;
  995.       }
  996.       else
  997.       {
  998.          mudarEstado(i,EST_PARADO);
  999.       }
  1000.       return undefined;
  1001.    }
  1002.    if(tropa1.soldados[i].classe == MAG)
  1003.    {
  1004.       mudarEstado(i,EST_PERSEGUIR);
  1005.       _loc6_ = -1;
  1006.       for(_loc9_ in tropa1.soldados)
  1007.       {
  1008.          if(i != _loc9_)
  1009.          {
  1010.             if(!(tropa1.soldados[_loc9_].tropa == tropa1.soldados[i].tropa || !tropa1.soldados[_loc9_].status))
  1011.             {
  1012.                if(_loc6_ == -1 || tropa1.soldados[_loc9_].getPV() < tropa1.soldados[_loc6_].getPV())
  1013.                {
  1014.                   _loc6_ = _loc9_;
  1015.                }
  1016.             }
  1017.          }
  1018.       }
  1019.       tropa1.soldados[i].alvo = _loc6_;
  1020.       return undefined;
  1021.    }
  1022.    if(tropa1.soldados[i].classe == ARQ)
  1023.    {
  1024.       mudarEstado(i,EST_PERSEGUIR);
  1025.       var _loc5_ = -1;
  1026.       var _loc8_ = undefined;
  1027.       for(_loc9_ in tropa1.soldados)
  1028.       {
  1029.          if(i != _loc9_)
  1030.          {
  1031.             if(!(tropa1.soldados[_loc9_].tropa == tropa1.soldados[i].tropa || !tropa1.soldados[_loc9_].status))
  1032.             {
  1033.                _loc8_ = _loc9_;
  1034.                if(_loc5_ == -1 || !tropa1.soldados[_loc9_].andando)
  1035.                {
  1036.                   _loc5_ = _loc9_;
  1037.                   break;
  1038.                }
  1039.             }
  1040.          }
  1041.       }
  1042.       tropa1.soldados[i].alvo = _loc5_ != -1 ? _loc5_ : _loc8_;
  1043.       return undefined;
  1044.    }
  1045.    if(tropa1.soldados[i].classe == CAV || tropa1.soldados[i].classe == GRR)
  1046.    {
  1047.       mudarEstado(i,EST_PERSEGUIR);
  1048.       _loc6_ = -1;
  1049.       var _loc7_ = 0;
  1050.       for(_loc9_ in tropa1.soldados)
  1051.       {
  1052.          if(i != _loc9_)
  1053.          {
  1054.             if(!(tropa1.soldados[_loc9_].tropa == tropa1.soldados[i].tropa || !tropa1.soldados[_loc9_].status))
  1055.             {
  1056.                var _loc4_ = tropa1.soldados[_loc9_].x - tropa1.soldados[i].x;
  1057.                var _loc3_ = tropa1.soldados[_loc9_].y - tropa1.soldados[i].y;
  1058.                var _loc2_ = _loc4_ * _loc4_ + _loc3_ * _loc3_;
  1059.                if(_loc6_ == -1 || _loc2_ < _loc7_)
  1060.                {
  1061.                   _loc7_ = _loc2_;
  1062.                   _loc6_ = _loc9_;
  1063.                }
  1064.             }
  1065.          }
  1066.       }
  1067.       tropa1.soldados[i].alvo = _loc6_;
  1068.       return undefined;
  1069.    }
  1070. }
  1071. function atualizarObjetivo()
  1072. {
  1073.    var _loc2_ = tropa1.soldados.length;
  1074.    var _loc1_ = 0;
  1075.    while(_loc1_ < _loc2_)
  1076.    {
  1077.       setObjetivo(_loc1_);
  1078.       _loc1_ = _loc1_ + 1;
  1079.    }
  1080. }
  1081. function isAdjacente(deltax, deltay)
  1082. {
  1083.    return Math.abs(deltax) + Math.abs(deltay) <= 2 && Math.abs(deltax) != 2 && Math.abs(deltay) != 2;
  1084. }
  1085. function randomBattle()
  1086. {
  1087.    tropa1.soldados = new Array();
  1088.    lado1 = lado2 = 0;
  1089.    tropa1.addSoldado(Math.round(Math.random() * 4));
  1090.    tropa1.soldados[tropa1.soldados.length - 1].tropa = 1;
  1091.    tropa1.soldados[tropa1.soldados.length - 1].lider = true;
  1092.    tropa1.soldados[tropa1.soldados.length - 1].addNivel(2);
  1093.    tropa1.setLider(tropa1.soldados[tropa1.soldados.length - 1]);
  1094.    tropa1.setNome("Anacroz");
  1095.    lado1++;
  1096.    tropa1.addSoldado(Math.round(Math.random() * 4));
  1097.    tropa1.soldados[tropa1.soldados.length - 1].tropa = 0;
  1098.    tropa1.soldados[tropa1.soldados.length - 1].lider = true;
  1099.    lado2++;
  1100.    var _loc1_ = 0;
  1101.    while(_loc1_ < 4)
  1102.    {
  1103.       if(Math.round(Math.random() * 2))
  1104.       {
  1105.          tropa1.addSoldado(GRR);
  1106.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 1;
  1107.          lado1++;
  1108.       }
  1109.       if(Math.round(Math.random() * 2))
  1110.       {
  1111.          tropa1.addSoldado(GRR);
  1112.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 0;
  1113.          lado2++;
  1114.       }
  1115.       _loc1_ = _loc1_ + 1;
  1116.    }
  1117.    _loc1_ = 0;
  1118.    while(_loc1_ < 3)
  1119.    {
  1120.       if(Math.round(Math.random() * 2))
  1121.       {
  1122.          tropa1.addSoldado(ARQ);
  1123.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 1;
  1124.          lado1++;
  1125.       }
  1126.       if(Math.round(Math.random() * 2))
  1127.       {
  1128.          tropa1.addSoldado(ARQ);
  1129.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 0;
  1130.          lado2++;
  1131.       }
  1132.       _loc1_ = _loc1_ + 1;
  1133.    }
  1134.    _loc1_ = 0;
  1135.    while(_loc1_ < 3)
  1136.    {
  1137.       if(Math.round(Math.random() * 2))
  1138.       {
  1139.          tropa1.addSoldado(CAV);
  1140.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 1;
  1141.          lado1++;
  1142.       }
  1143.       if(Math.round(Math.random() * 2))
  1144.       {
  1145.          tropa1.addSoldado(CAV);
  1146.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 0;
  1147.          lado2++;
  1148.       }
  1149.       _loc1_ = _loc1_ + 1;
  1150.    }
  1151.    _loc1_ = 0;
  1152.    while(_loc1_ < 2)
  1153.    {
  1154.       if(Math.round(Math.random() * 2))
  1155.       {
  1156.          tropa1.addSoldado(MAG);
  1157.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 1;
  1158.          lado1++;
  1159.       }
  1160.       if(Math.round(Math.random() * 2))
  1161.       {
  1162.          tropa1.addSoldado(MAG);
  1163.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 0;
  1164.          lado2++;
  1165.       }
  1166.       _loc1_ = _loc1_ + 1;
  1167.    }
  1168.    _loc1_ = 0;
  1169.    while(_loc1_ < 2)
  1170.    {
  1171.       if(Math.round(Math.random() * 2))
  1172.       {
  1173.          tropa1.addSoldado(CLR);
  1174.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 1;
  1175.          lado1++;
  1176.       }
  1177.       if(Math.round(Math.random() * 2))
  1178.       {
  1179.          tropa1.addSoldado(CLR);
  1180.          tropa1.soldados[tropa1.soldados.length - 1].tropa = 0;
  1181.          lado2++;
  1182.       }
  1183.       _loc1_ = _loc1_ + 1;
  1184.    }
  1185.    tropa1.setEstrategia(0);
  1186. }
  1187. function clock()
  1188. {
  1189.    atualizarFlecha();
  1190.    atualizarTarefa();
  1191.    atualizarPosicoes();
  1192. }
  1193. function inicializaCenario(fase)
  1194. {
  1195.    var _loc4_ = sizeh + sizew - 1;
  1196.    var _loc3_ = 0;
  1197.    while(_loc3_ < _loc4_)
  1198.    {
  1199.       nivelAtual[_loc3_] = 0;
  1200.       _loc3_ = _loc3_ + 1;
  1201.    }
  1202.    flechaAtual = 0;
  1203.    grid = new Array(sizeh);
  1204.    _loc3_ = 0;
  1205.    while(_loc3_ < sizeh)
  1206.    {
  1207.       grid[_loc3_] = new Array(sizew);
  1208.       _loc3_ = _loc3_ + 1;
  1209.    }
  1210.    _loc3_ = 0;
  1211.    while(_loc3_ < sizeh)
  1212.    {
  1213.       var _loc2_ = 0;
  1214.       while(_loc2_ < sizew)
  1215.       {
  1216.          grid[_loc3_][_loc2_] = grid_tmp[_loc3_][_loc2_] != 0 ? 500 : -1;
  1217.          _loc2_ = _loc2_ + 1;
  1218.       }
  1219.       _loc3_ = _loc3_ + 1;
  1220.    }
  1221.    _root.posicionarSoldados(tropa1);
  1222.    lado1 = lado2 = 0;
  1223.    for(_loc3_ in tropa1.soldados)
  1224.    {
  1225.       tropa1.soldados[_loc3_].atacando = false;
  1226.       tropa1.soldados[_loc3_].andando = false;
  1227.       if(tropa1.soldados[_loc3_].tropa == 1)
  1228.       {
  1229.          tropa1.soldados[_loc3_].mododesejado = tropa1.getEstrategia();
  1230.          tropa1.soldados[_loc3_].modo = 4;
  1231.       }
  1232.       else
  1233.       {
  1234.          tropa1.soldados[_loc3_].modo = 0;
  1235.       }
  1236.       if(tropa1.soldados[_loc3_].status)
  1237.       {
  1238.          if(tropa1.soldados[_loc3_].tropa == 0)
  1239.          {
  1240.             lado2++;
  1241.          }
  1242.          else
  1243.          {
  1244.             lado1++;
  1245.          }
  1246.          if(tropa1.soldados[_loc3_].isLeader() && tropa1.soldados[_loc3_].tropa == 1)
  1247.          {
  1248.             tropa1.idlider = _loc3_;
  1249.          }
  1250.       }
  1251.    }
  1252.    _root.attachMovie("painel_jogo","painel_jogo",nivelPaineis);
  1253.    _root.painel_jogo._x = 3.5;
  1254.    _root.painel_jogo._y = 3.1;
  1255.    _root.painel_jogo.edTropa = tropa1.getNome();
  1256.    _root.painel_jogo.soldados = lado1;
  1257.    _root.attachMovie("painel_status","painel_status",nivelPaineis + 1);
  1258.    _root.painel_status._x = 4;
  1259.    _root.painel_status._y = 506;
  1260.    _root.painel_status.alert._visible = false;
  1261.    var _loc5_ = tropa1.soldados.length;
  1262.    _loc3_ = 0;
  1263.    while(_loc3_ < _loc5_)
  1264.    {
  1265.       if(tropa1.soldados[_loc3_].isLeader() && tropa1.soldados[_loc3_].tropa == 1)
  1266.       {
  1267.          _root["sd" + _loc3_].setaSelecao._visible = true;
  1268.          _root.pressSoldado(_loc3_);
  1269.       }
  1270.       else
  1271.       {
  1272.          _root["sd" + _loc3_].setaSelecao._visible = false;
  1273.       }
  1274.       _loc3_ = _loc3_ + 1;
  1275.    }
  1276.    _root.attachMovie("dica","dica_dia",nivelMensagens);
  1277.    _root.dica_dia._x = 125;
  1278.    _root.dica_dia._y = 85;
  1279. }
  1280. function showMessage(n)
  1281. {
  1282.    switch(n)
  1283.    {
  1284.       case 0:
  1285.          _root.attachMovie("msg_batalha","msg",nivelMensagens);
  1286.          _root.msg._x = 28;
  1287.          _root.msg._y = 230;
  1288.          break;
  1289.       case 1:
  1290.          stopAllSounds();
  1291.          clearInterval(_root.tarefa);
  1292.          _root.fx.attachSound("vitoria");
  1293.          _root.fx.start();
  1294.          _root.attachMovie("msg_vitoria","msg",nivelMensagens);
  1295.          _root.msg._x = 222.5;
  1296.          _root.msg._y = 250;
  1297.          break;
  1298.       case 2:
  1299.          stopAllSounds();
  1300.          clearInterval(_root.tarefa);
  1301.          _root.fx.attachSound("derrota");
  1302.          _root.fx.start();
  1303.          _root.attachMovie("msg_derrota","msg",nivelMensagens);
  1304.          _root.msg._x = 84.5;
  1305.          _root.msg._y = 248.6;
  1306.    }
  1307. }
  1308. function finalizaCenario(x)
  1309. {
  1310.    var _loc3_ = undefined;
  1311.    _root.sd_sel = -1;
  1312.    removeMovieClip("_root.alvo2");
  1313.    _root.alvo2.stopDrag();
  1314.    _root.magiaAtiva = false;
  1315.    Mouse.show();
  1316.    removeMovieClip("_root.painel_jogo");
  1317.    removeMovieClip("_root.painel_status");
  1318.    removeMovieClip("_root.cenario");
  1319.    var _loc2_ = 0;
  1320.    while(_loc2_ < tropa1.soldados.length)
  1321.    {
  1322.       removeMovieClip("_root.sd" + _loc2_);
  1323.       _loc2_ = _loc2_ + 1;
  1324.    }
  1325.    lado2 = 0;
  1326.    selecionado = -1;
  1327.    _quality = "MEDIUM";
  1328.    for(_loc2_ in flechas)
  1329.    {
  1330.       removeMovieClip("_root.f1" + flechas[_loc2_].id);
  1331.    }
  1332.    flechaAtual = 0;
  1333.    flechas = new Array();
  1334.    if(x == 1)
  1335.    {
  1336.       if(tropa1.cenario == 4)
  1337.       {
  1338.          _root.gotoAndStop("zera");
  1339.          tropa1.setCenario(0);
  1340.       }
  1341.       else if(_root.modoCampanha)
  1342.       {
  1343.          tropa1.setFundos(tropa1.getFundos() + _root.cenarios[tropa1.cenario++][4]);
  1344.          _loc2_ = tropa1.soldados.length - 1;
  1345.          while(_loc2_ >= 0)
  1346.          {
  1347.             tropa1.soldados[_loc2_].andando = false;
  1348.             tropa1.soldados[_loc2_].atacando = false;
  1349.             tropa1.soldados[_loc2_].alvo = -1;
  1350.             tropa1.soldados[_loc2_].setPV(tropa1.soldados[_loc2_].getMaxPV());
  1351.             tropa1.soldados[_loc2_].setPM(tropa1.soldados[_loc2_].getMaxPM());
  1352.             if(tropa1.soldados[_loc2_].isLeader())
  1353.             {
  1354.                lado1--;
  1355.                tropa1.soldados.splice(_loc2_,1);
  1356.             }
  1357.             else if(tropa1.soldados[_loc2_].tropa == 0 || tropa1.soldados[_loc2_].status == false)
  1358.             {
  1359.                tropa1.soldados.splice(_loc2_,1);
  1360.             }
  1361.             _loc2_ = _loc2_ - 1;
  1362.          }
  1363.          _root.fx.attachSound("entrada");
  1364.          _root.fx.start();
  1365.          _root.destino = "soldados";
  1366.          _root.gotoAndPlay(_root.destino);
  1367.       }
  1368.       else
  1369.       {
  1370.          lado1 = lado2 = 0;
  1371.          _root.fx.attachSound("entrada");
  1372.          _root.fx.start();
  1373.          _root.gotoAndPlay("entrada");
  1374.          _root.modoCampanha = true;
  1375.       }
  1376.    }
  1377.    else
  1378.    {
  1379.       lado1 = lado2 = 0;
  1380.       tropa1.setCenario(0);
  1381.       _root.fx.attachSound("entrada");
  1382.       _root.fx.start();
  1383.       _root.gotoAndPlay("entrada");
  1384.       _root.modoCampanha = true;
  1385.    }
  1386. }
  1387. function showAlert(str)
  1388. {
  1389.    _root.attachMovie("aviso","wd_aviso",_root.getNextHighestDepth());
  1390.    _root.wd_aviso.texto = str;
  1391.    _root.wd_aviso._x = 209;
  1392.    _root.wd_aviso._y = 229;
  1393.    _root.bt_ok.enabled = false;
  1394.    _root.bt_aleatorio.enabled = false;
  1395.    _root.bt_inventorio.enabled = false;
  1396.    _root.bt_cancelar.enabled = false;
  1397.    _root.bt_recrutar.enabled = false;
  1398.    _root.bt_voltar.enabled = false;
  1399.    _root.bt_dispensar.enabled = false;
  1400.    _root.bt_ajuda.enabled = false;
  1401.    _root.bt_adicionar.enabled = false;
  1402.    _root.bt_remover.enabled = false;
  1403. }
  1404. function hideAlert()
  1405. {
  1406.    removeMovieClip("wd_aviso");
  1407.    _root.bt_ok.enabled = true;
  1408.    _root.bt_aleatorio.enabled = true;
  1409.    _root.bt_inventorio.enabled = true;
  1410.    _root.bt_cancelar.enabled = true;
  1411.    _root.bt_recrutar.enabled = true;
  1412.    _root.bt_voltar.enabled = true;
  1413.    _root.bt_dispensar.enabled = true;
  1414.    _root.bt_ajuda.enabled = true;
  1415.    _root.bt_adicionar.enabled = true;
  1416.    _root.bt_remover.enabled = true;
  1417. }
  1418. function showConfirm(str)
  1419. {
  1420.    _root.attachMovie("confirma","wd_confirma",_root.getNextHighestDepth());
  1421.    _root.wd_confirma.texto = str;
  1422.    _root.wd_confirma._x = 145;
  1423.    _root.wd_confirma._y = 225;
  1424.    _root.bt_ok.enabled = false;
  1425.    _root.bt_aleatorio.enabled = false;
  1426.    _root.bt_inventorio.enabled = false;
  1427.    _root.bt_cancelar.enabled = false;
  1428.    _root.bt_recrutar.enabled = false;
  1429.    _root.bt_voltar.enabled = false;
  1430.    _root.bt_dispensar.enabled = false;
  1431.    _root.bt_ajuda.enabled = false;
  1432.    _root.bt_adicionar.enabled = false;
  1433.    _root.bt_remover.enabled = false;
  1434. }
  1435. function hideConfirm()
  1436. {
  1437.    removeMovieClip("wd_confirma");
  1438.    _root.bt_ok.enabled = true;
  1439.    _root.bt_aleatorio.enabled = true;
  1440.    _root.bt_inventorio.enabled = true;
  1441.    _root.bt_cancelar.enabled = true;
  1442.    _root.bt_recrutar.enabled = true;
  1443.    _root.bt_voltar.enabled = true;
  1444.    _root.bt_dispensar.enabled = true;
  1445.    _root.bt_ajuda.enabled = true;
  1446.    _root.bt_adicionar.enabled = true;
  1447.    _root.bt_remover.enabled = true;
  1448. }
  1449. function aviso(str)
  1450. {
  1451.    _root.painel_status.alert.texto = str;
  1452.    _root.painel_status.alert._visible = true;
  1453.    _root.painel_status.alert.gotoAndPlay(1);
  1454. }
  1455. function callConfirmOption(opt)
  1456. {
  1457.    var _loc2_ = 1;
  1458.    switch(opt)
  1459.    {
  1460.       case 1:
  1461.          _root.destino = "cenario";
  1462.          _root.play();
  1463.          break;
  1464.       case 2:
  1465.          tropa1.soldados.splice(_root.sd_sel - 1,1);
  1466.          tropa1.soldados.sortOn(["classe","nome"],Array.DESCENDING | Array.UNIQUESORT);
  1467.          _root.sd_sel = -1;
  1468.          lado1--;
  1469.          while(_loc2_ <= 5)
  1470.          {
  1471.             _loc2_;
  1472.             _root.mini_item["item" + _loc2_++].gotoAndStop(1);
  1473.          }
  1474.          _loc2_ = 1;
  1475.          while(_loc2_ <= 15)
  1476.          {
  1477.             if(tropa1.soldados[_loc2_ - 1] == undefined)
  1478.             {
  1479.                _root["s" + _loc2_].gotoAndStop(1);
  1480.                _root["s" + _loc2_].nome = "";
  1481.             }
  1482.             else
  1483.             {
  1484.                _root["s" + _loc2_].gotoAndStop(tropa1.soldados[_loc2_ - 1].getClasse() + 2);
  1485.                _root["s" + _loc2_].nome = tropa1.soldados[_loc2_ - 1].getNome();
  1486.             }
  1487.             _root["s" + _loc2_].selecionado._visible = false;
  1488.             _loc2_ = _loc2_ + 1;
  1489.          }
  1490.          break;
  1491.       case 3:
  1492.          _root.destino = "tropa";
  1493.          _root.play();
  1494.          tropa1.soldados = undefined;
  1495.          tropa1.soldados = new Array();
  1496.          tropa1.setCenario(0);
  1497.          while(_loc2_ < 16)
  1498.          {
  1499.             _loc2_;
  1500.             _root["s" + _loc2_++].selecionado._visible = false;
  1501.          }
  1502.          lado1 = 0;
  1503.          _root.sd_sel = 0;
  1504.          _root.edFundos = _root.fundo_inicial;
  1505.          break;
  1506.       case 4:
  1507.          _root.sd_sel = -1;
  1508.          lado2 = 0;
  1509.          selecionado = -1;
  1510.          stopAllSounds();
  1511.          _quality = "MEDIUM";
  1512.          for(_loc2_ in flechas)
  1513.          {
  1514.             removeMovieClip("_root.f1" + flechas[_loc2_].id);
  1515.          }
  1516.          flechaAtual = 0;
  1517.          flechas = new Array();
  1518.          _root.fx.attachSound("entrada");
  1519.          _root.fx.start();
  1520.          for(_loc2_ in tropa1.soldados)
  1521.          {
  1522.             removeMovieClip(_root["sd" + _loc2_]);
  1523.          }
  1524.          clearInterval(_root.tarefa);
  1525.          removeMovieClip("painel_jogo");
  1526.          removeMovieClip("painel_status");
  1527.          removeMovieClip("cenario");
  1528.          _loc2_ = tropa1.soldados.length - 1;
  1529.          while(_loc2_ >= 0)
  1530.          {
  1531.             tropa1.soldados[_loc2_].andando = false;
  1532.             tropa1.soldados[_loc2_].alvo = -1;
  1533.             tropa1.soldados[_loc2_].setPV(tropa1.soldados[_loc2_].getMaxPV());
  1534.             if(tropa1.soldados[_loc2_].isLeader())
  1535.             {
  1536.                lado1--;
  1537.                tropa1.soldados.splice(_loc2_,1);
  1538.             }
  1539.             else if(tropa1.soldados[_loc2_].tropa == 0 || tropa1.soldados[_loc2_].status == false)
  1540.             {
  1541.                tropa1.soldados.splice(_loc2_,1);
  1542.             }
  1543.             _loc2_ = _loc2_ - 1;
  1544.          }
  1545.          if(_root.modoCampanha)
  1546.          {
  1547.             _root.sd_sel = 0;
  1548.             _root.destino = "soldados";
  1549.             _root.gotoAndPlay(_root.destino);
  1550.          }
  1551.          else
  1552.          {
  1553.             _root.gotoAndPlay("entrada");
  1554.             _root.modoCampanha = true;
  1555.          }
  1556.    }
  1557.    _root.hideConfirm();
  1558.    _root.edSoldado = _root.edClasse = _root.edNivel = _root.edPV = _root.edPM = "?";
  1559.    _root.edEXP = _root.edATQ = _root.edDEF = _root.edAGL = "?";
  1560.    _root.edINT = _root.edMRL = _root.edCusto = "?";
  1561. }
  1562. function getprofundidade(x, y)
  1563. {
  1564.    var _loc1_ = y - x + sizew - 1;
  1565.    var _loc2_ = (_loc1_ * _loc1_ + _loc1_) / 2 + 32 * _loc1_;
  1566.    return _loc2_ + y + 1;
  1567. }
  1568. function getisox(i)
  1569. {
  1570.    return tropa1.soldados[i].diry + tropa1.soldados[i].dirx;
  1571. }
  1572. function getisoy(i)
  1573. {
  1574.    return tropa1.soldados[i].diry - tropa1.soldados[i].dirx;
  1575. }
  1576. function posicionarSoldados(tr)
  1577. {
  1578.    var _loc7_ = tr.soldados.length;
  1579.    var _loc2_ = 0;
  1580.    while(_loc2_ < _loc7_)
  1581.    {
  1582.       var _loc3_ = undefined;
  1583.       var _loc4_ = undefined;
  1584.       var _loc5_ = tr.soldados[_loc2_].tropa;
  1585.       while(true)
  1586.       {
  1587.          _loc4_ = Math.round(Math.random() * (sizeh - 1));
  1588.          _loc3_ = Math.round(Math.random() * (sizew - 1));
  1589.          if(!(_loc5_ == 1 && _loc3_ > 3))
  1590.          {
  1591.             if(!(_loc5_ == 0 && _loc3_ < sizew - 4))
  1592.             {
  1593.                if(grid[_loc4_][_loc3_] < 0)
  1594.                {
  1595.                   break;
  1596.                }
  1597.             }
  1598.          }
  1599.       }
  1600.       if(_loc5_ == 1)
  1601.       {
  1602.          _root.attachMovie("soldado" + tr.soldados[_loc2_].getClasse(),"sd" + _loc2_,nivelSoldados + getprofundidade(_loc3_,_loc4_));
  1603.       }
  1604.       else
  1605.       {
  1606.          _root.attachMovie("inimigo" + tr.soldados[_loc2_].getClasse(),"sd" + _loc2_,nivelSoldados + getprofundidade(_loc3_,_loc4_));
  1607.       }
  1608.       _root["sd" + _loc2_]._x = x0 + dx + (_loc3_ + _loc4_) * dx;
  1609.       _root["sd" + _loc2_]._y = y0 + (_loc4_ - _loc3_) * dy;
  1610.       tr.soldados[_loc2_].x = _loc3_;
  1611.       tr.soldados[_loc2_].y = _loc4_;
  1612.       if(tr.soldados[_loc2_].isLeader())
  1613.       {
  1614.          _root["sd" + _loc2_].coroa._visible = true;
  1615.       }
  1616.       else
  1617.       {
  1618.          _root["sd" + _loc2_].coroa._visible = false;
  1619.       }
  1620.       if(_loc5_ == 0)
  1621.       {
  1622.          _root["sd" + _loc2_].gotoAndStop("move-10");
  1623.       }
  1624.       else
  1625.       {
  1626.          _root["sd" + _loc2_].gotoAndStop("move10");
  1627.       }
  1628.       grid[_loc4_][_loc3_] = _loc2_;
  1629.       _loc2_ = _loc2_ + 1;
  1630.    }
  1631. }
  1632. function randSoldado()
  1633. {
  1634.    var _loc3_ = 1;
  1635.    var _loc4_ = undefined;
  1636.    var _loc2_ = undefined;
  1637.    var _loc5_ = undefined;
  1638.    _root.edCustoTotal = _loc4_ = 0;
  1639.    while(_loc3_ <= 5)
  1640.    {
  1641.       _loc3_;
  1642.       _root["rc_" + _loc3_++].qtd = 0;
  1643.    }
  1644.    _loc3_ = 1;
  1645.    _loc5_ = _root.sd_num_max - _root.rc_total_tmp;
  1646.    _root.rc_total = _root.rc_total_tmp;
  1647.    while(_loc3_ <= _loc5_)
  1648.    {
  1649.       _loc2_ = Math.round(Math.random() * 5) + 1;
  1650.       if(_loc4_ + Number(_root["rc_" + _loc2_].custo) < _root.edFundos)
  1651.       {
  1652.          _root["rc_" + _loc2_].qtd = Number(_root["rc_" + _loc2_].qtd) + 1;
  1653.          _loc4_ += Number(_root["rc_" + _loc2_].custo);
  1654.          _root.rc_total = _root.rc_total + 1;
  1655.       }
  1656.       _loc3_ = _loc3_ + 1;
  1657.    }
  1658.    if(!_loc4_)
  1659.    {
  1660.       _root.showAlert("N├úo h├í fundos suficientes para recrutar mais soldados!");
  1661.    }
  1662.    _root.edCustoTotal = _loc4_;
  1663. }
  1664. function createLider(tipo)
  1665. {
  1666.    var sd = new Soldado();
  1667.    switch(tipo)
  1668.    {
  1669.       case 1:
  1670.          with(sd)
  1671.          {
  1672.             setClasse(CAV);
  1673.             setMaxPV(_root.sd_valores[CAV][PV]);
  1674.             setMaxPM(_root.sd_valores[CAV][PM]);
  1675.             setPV(_root.sd_valores[CAV][PV]);
  1676.             setPM(_root.sd_valores[CAV][PM]);
  1677.             setATQ(_root.sd_valores[CAV][ATQ]);
  1678.             setDEF(_root.sd_valores[CAV][DEF]);
  1679.             setAGL(_root.sd_valores[CAV][AGL]);
  1680.             setINT(_root.sd_valores[CAV][INT]);
  1681.             setMRL(_root.sd_valores[CAV][MRL]);
  1682.             setCusto(_root.sd_valores[CAV][VALOR]);
  1683.             setAlcance(_root.sd_valores[CAV][ALCANCE]);
  1684.             addNivel(1);
  1685.             itens.push(_root.createItem(7));
  1686.             itens[0].equip();
  1687.             setDano(itens[0].getPoder() + getATQ());
  1688.             itens.push(_root.createItem(13));
  1689.             itens[1].equip();
  1690.             setDefesa(itens[1].getPoder() + getDEF());
  1691.             itens.push(_root.createItem(11));
  1692.             itens[2].equip();
  1693.             setDefesa(itens[2].getPoder() + getDefesa());
  1694.          }
  1695.          break;
  1696.       case 2:
  1697.          with(sd)
  1698.          {
  1699.             setClasse(MAG);
  1700.             setMaxPV(_root.sd_valores[MAG][PV]);
  1701.             setMaxPM(_root.sd_valores[MAG][PM]);
  1702.             setPV(_root.sd_valores[MAG][PV]);
  1703.             setPM(_root.sd_valores[MAG][PM]);
  1704.             setATQ(_root.sd_valores[MAG][ATQ]);
  1705.             setDEF(_root.sd_valores[MAG][DEF]);
  1706.             setAGL(_root.sd_valores[MAG][AGL]);
  1707.             setINT(_root.sd_valores[MAG][INT]);
  1708.             setMRL(_root.sd_valores[MAG][MRL]);
  1709.             setCusto(_root.sd_valores[MAG][VALOR]);
  1710.             setAlcance(_root.sd_valores[MAG][ALCANCE]);
  1711.             addNivel(2);
  1712.             itens.push(_root.createItem(9));
  1713.             itens[0].equip();
  1714.             setDano(itens[0].getPoder() + getATQ());
  1715.             itens.push(_root.createItem(15));
  1716.             itens[1].equip();
  1717.             setDefesa(itens[1].getPoder() + getDEF());
  1718.             magias.push(0);
  1719.             magias.push(1);
  1720.          }
  1721.    }
  1722.    return sd;
  1723. }
  1724. function createItem(x)
  1725. {
  1726.    var _loc3_ = undefined;
  1727.    var _loc4_ = undefined;
  1728.    var _loc6_ = undefined;
  1729.    var _loc7_ = undefined;
  1730.    var _loc8_ = undefined;
  1731.    var _loc5_ = undefined;
  1732.    _loc4_ = _root.it_valores[x][0];
  1733.    _loc8_ = _root.it_valores[x][1];
  1734.    _loc6_ = _root.it_valores[x][2];
  1735.    _loc5_ = _root.it_valores[x][3];
  1736.    _loc7_ = _root.it_valores[x][4];
  1737.    _loc3_ = new Item(_loc4_,_loc8_,_loc6_,_loc5_,_loc7_);
  1738.    return _loc3_;
  1739. }
  1740. function checkItem(sd, it)
  1741. {
  1742.    var _loc2_ = _root.it_valores[it][0];
  1743.    switch(sd.getClasse())
  1744.    {
  1745.       case 0:
  1746.          if(_loc2_ >= 4 && _loc2_ <= 9 || _loc2_ == 14 || _loc2_ == 15)
  1747.          {
  1748.             return false;
  1749.          }
  1750.          break;
  1751.       case 1:
  1752.          if(_loc2_ >= 6 && _loc2_ <= 13 || _loc2_ == 2 || _loc2_ == 3)
  1753.          {
  1754.             return false;
  1755.          }
  1756.          break;
  1757.       case 2:
  1758.          if(_loc2_ >= 2 && _loc2_ <= 5 || _loc2_ == 8 || _loc2_ == 9 || _loc2_ == 14 || _loc2_ == 15)
  1759.          {
  1760.             return false;
  1761.          }
  1762.          break;
  1763.       case 3:
  1764.       case 4:
  1765.          if(_loc2_ >= 2 && _loc2_ <= 7 || _loc2_ >= 10 && _loc2_ <= 13)
  1766.          {
  1767.             return false;
  1768.          }
  1769.          break;
  1770.    }
  1771.    return true;
  1772. }
  1773. function selecionar(ids)
  1774. {
  1775.    if(selecionado != -1)
  1776.    {
  1777.       _root["sd" + selecionado].setaSelecao._visible = false;
  1778.    }
  1779.    selecionado = ids;
  1780.    _root["sd" + selecionado].setaSelecao._visible = true;
  1781. }
  1782. function inicializa(id)
  1783. {
  1784.    _root.onEnterFrame = function()
  1785.    {
  1786.       if(Key.isDown(65))
  1787.       {
  1788.          if(id == tropa1.idlider)
  1789.          {
  1790.             for(var _loc2_ in tropa1.soldados)
  1791.             {
  1792.                if(tropa1.soldados[_loc2_].tropa == 1)
  1793.                {
  1794.                   tropa1.soldados[_loc2_].mododesejado = 0;
  1795.                }
  1796.             }
  1797.          }
  1798.          tropa1.soldados[id].mododesejado = 0;
  1799.          _root.aviso("MODO DE ATAQUE");
  1800.       }
  1801.       if(Key.isDown(68))
  1802.       {
  1803.          if(id == tropa1.idlider)
  1804.          {
  1805.             for(_loc2_ in tropa1.soldados)
  1806.             {
  1807.                if(tropa1.soldados[_loc2_].tropa == 1)
  1808.                {
  1809.                   tropa1.soldados[_loc2_].mododesejado = 1;
  1810.                }
  1811.             }
  1812.          }
  1813.          tropa1.soldados[id].mododesejado = 1;
  1814.          _root.aviso("MODO DE DEFESA");
  1815.       }
  1816.       if(Key.isDown(82))
  1817.       {
  1818.          if(id == tropa1.idlider)
  1819.          {
  1820.             for(_loc2_ in tropa1.soldados)
  1821.             {
  1822.                if(tropa1.soldados[_loc2_].tropa == 1)
  1823.                {
  1824.                   tropa1.soldados[_loc2_].mododesejado = 2;
  1825.                }
  1826.             }
  1827.          }
  1828.          tropa1.soldados[id].mododesejado = 2;
  1829.          _root.aviso("MODO DE RECUO");
  1830.       }
  1831.       if(tropa1.soldados[id].andando)
  1832.       {
  1833.          return undefined;
  1834.       }
  1835.       if(tropa1.soldados[id].atacando)
  1836.       {
  1837.          return undefined;
  1838.       }
  1839.       if(Key.isDown(32))
  1840.       {
  1841.          if(!tropa1.soldados[id].atacando)
  1842.          {
  1843.             mudarEstado(id,EST_ATACAROFENSIVO);
  1844.             tropa1.soldados[id].atacando = true;
  1845.             if(id != grid[tropa1.soldados[id].y + tropa1.soldados[id].diry][tropa1.soldados[id].x + tropa1.soldados[id].dirx])
  1846.             {
  1847.                atacar(id,grid[tropa1.soldados[id].y + tropa1.soldados[id].diry][tropa1.soldados[id].x + tropa1.soldados[id].dirx]);
  1848.             }
  1849.          }
  1850.       }
  1851.       else if(Key.isDown(38))
  1852.       {
  1853.          if(Key.isDown(39))
  1854.          {
  1855.             tropa1.soldados[id].dirx = 1;
  1856.             tropa1.soldados[id].diry = 0;
  1857.             mudarEstado(id,EST_PERSEGUIR);
  1858.             andar(id,1,0);
  1859.          }
  1860.          else if(Key.isDown(37))
  1861.          {
  1862.             tropa1.soldados[id].dirx = 0;
  1863.             tropa1.soldados[id].diry = -1;
  1864.             mudarEstado(id,EST_PERSEGUIR);
  1865.             andar(id,0,-1);
  1866.          }
  1867.          else
  1868.          {
  1869.             tropa1.soldados[id].dirx = 1;
  1870.             tropa1.soldados[id].diry = -1;
  1871.             mudarEstado(id,EST_PERSEGUIR);
  1872.             andar(id,1,-1);
  1873.          }
  1874.       }
  1875.       else if(Key.isDown(40))
  1876.       {
  1877.          if(Key.isDown(39))
  1878.          {
  1879.             tropa1.soldados[id].dirx = 0;
  1880.             tropa1.soldados[id].diry = 1;
  1881.             mudarEstado(id,EST_PERSEGUIR);
  1882.             andar(id,0,1);
  1883.          }
  1884.          else if(Key.isDown(37))
  1885.          {
  1886.             tropa1.soldados[id].dirx = -1;
  1887.             tropa1.soldados[id].diry = 0;
  1888.             mudarEstado(id,EST_PERSEGUIR);
  1889.             andar(id,-1,0);
  1890.          }
  1891.          else
  1892.          {
  1893.             tropa1.soldados[id].dirx = -1;
  1894.             tropa1.soldados[id].diry = 1;
  1895.             mudarEstado(id,EST_PERSEGUIR);
  1896.             andar(id,-1,1);
  1897.          }
  1898.       }
  1899.       else if(Key.isDown(37))
  1900.       {
  1901.          tropa1.soldados[id].dirx = -1;
  1902.          tropa1.soldados[id].diry = -1;
  1903.          mudarEstado(id,EST_PERSEGUIR);
  1904.          andar(id,-1,-1);
  1905.       }
  1906.       else if(Key.isDown(39))
  1907.       {
  1908.          tropa1.soldados[id].dirx = 1;
  1909.          tropa1.soldados[id].diry = 1;
  1910.          mudarEstado(id,EST_PERSEGUIR);
  1911.          andar(id,1,1);
  1912.       }
  1913.    };
  1914. }
  1915. function pressSoldado(num)
  1916. {
  1917.    if(!tropa1.soldados[num].status)
  1918.    {
  1919.       return undefined;
  1920.    }
  1921.    var _loc2_ = 0;
  1922.    _root.fx.attachSound("accept");
  1923.    _root.fx.start();
  1924.    tropa1.soldados[num].alvo = -1;
  1925.    tropa1.soldados[num].modo = 3;
  1926.    delete _root.onEnterFrame;
  1927.    _root.selecionar(num);
  1928.    _root.painel_status.edNome = tropa1.soldados[num].getNome();
  1929.    _root.painel_status.edPV = tropa1.soldados[num].getPV();
  1930.    _root.painel_status.edPM = tropa1.soldados[num].getPM();
  1931.    _root.painel_status.edMaxPV = tropa1.soldados[num].getMaxPV();
  1932.    _root.painel_status.edMaxPM = tropa1.soldados[num].getMaxPM();
  1933.    _root.painel_status.edNivel = tropa1.soldados[num].getNivel();
  1934.    _root.painel_status.edEXP = tropa1.soldados[num].getEXP();
  1935.    _root.painel_status.rosto.gotoAndStop(tropa1.soldados[num].getClasse() + 2);
  1936.    while(_loc2_ < 6)
  1937.    {
  1938.       if(tropa1.soldados[num].itens[_loc2_])
  1939.       {
  1940.          var _loc4_ = tropa1.soldados[num].itens[_loc2_].getCod();
  1941.          _root.painel_status["item" + (_loc2_ + 1)].useHandCursor = _loc4_ < 2;
  1942.          _root.painel_status["item" + (_loc2_ + 1)].gotoAndStop(tropa1.soldados[num].itens[_loc2_].getCod() + 2);
  1943.       }
  1944.       else
  1945.       {
  1946.          _root.painel_status["item" + (_loc2_ + 1)].useHandCursor = false;
  1947.          _root.painel_status["item" + (_loc2_ + 1)].gotoAndStop(1);
  1948.       }
  1949.       _loc2_ = _loc2_ + 1;
  1950.    }
  1951.    _root.painel_status.magia1.useHandCursor = false;
  1952.    _root.painel_status.magia1.gotoAndStop(1);
  1953.    _root.painel_status.magia2.useHandCursor = false;
  1954.    _root.painel_status.magia2.gotoAndStop(1);
  1955.    if(tropa1.soldados[num].getClasse() == 3)
  1956.    {
  1957.       _root.painel_status.magia1.useHandCursor = true;
  1958.       _root.painel_status.magia1.gotoAndStop(2);
  1959.       _root.painel_status.magia2.useHandCursor = true;
  1960.       _root.painel_status.magia2.gotoAndStop(3);
  1961.    }
  1962.    if(tropa1.soldados[num].getClasse() == 4)
  1963.    {
  1964.       _root.painel_status.magia1.useHandCursor = true;
  1965.       _root.painel_status.magia1.gotoAndStop(4);
  1966.       _root.painel_status.magia2.useHandCursor = false;
  1967.       _root.painel_status.magia2.gotoAndStop(1);
  1968.    }
  1969.    _root.inicializa(num);
  1970. }
  1971. function calculaDano(s1, s2, j)
  1972. {
  1973.    var _loc6_ = undefined;
  1974.    var _loc9_ = undefined;
  1975.    var _loc12_ = undefined;
  1976.    var _loc3_ = undefined;
  1977.    var _loc13_ = undefined;
  1978.    var _loc4_ = undefined;
  1979.    var _loc5_ = undefined;
  1980.    var _loc8_ = undefined;
  1981.    var _loc7_ = undefined;
  1982.    switch(s1.getClasse())
  1983.    {
  1984.       case 0:
  1985.          _root.fx.attachSound("guerreiro");
  1986.          _root.fx.start();
  1987.          break;
  1988.       case 2:
  1989.          _root.fx.attachSound("cavaleiro");
  1990.          _root.fx.start();
  1991.          break;
  1992.       case 3:
  1993.       case 4:
  1994.          _root.fx.attachSound("mago");
  1995.          _root.fx.start();
  1996.    }
  1997.    _loc4_ = s1.getDano();
  1998.    _loc7_ = s1.getAGL();
  1999.    _loc8_ = s2.getPV();
  2000.    _loc13_ = s2.getMaxPV();
  2001.    _loc5_ = s2.getDefesa();
  2002.    _loc6_ = Math.round(Math.random() * _loc7_);
  2003.    if(_loc5_ + _loc6_ > _loc4_)
  2004.    {
  2005.       _loc3_ = 0;
  2006.    }
  2007.    else
  2008.    {
  2009.       _loc3_ = _loc4_ - _loc5_ + _loc6_;
  2010.    }
  2011.    s2.setPV(_loc8_ - _loc3_);
  2012.    _loc12_ = 40;
  2013.    _loc9_ = Math.round(s2.getPV() * 100 / _loc13_);
  2014.    _root["sd" + j].barra._width = _loc12_ * _loc9_ / 100;
  2015.    _root["sd" + j].msg_dano.valor = "<font size=\'13\' color=\'#FFFFFF\'><b>" + _loc3_ + "</b></font>";
  2016.    _root["sd" + j].msg_dano.gotoAndPlay(1);
  2017. }
  2018. function calculaMagiaDano(s1, s2, j, m)
  2019. {
  2020.    var _loc4_ = undefined;
  2021.    var _loc7_ = undefined;
  2022.    var _loc11_ = undefined;
  2023.    var _loc3_ = undefined;
  2024.    var _loc12_ = undefined;
  2025.    var _loc9_ = undefined;
  2026.    var _loc5_ = undefined;
  2027.    var _loc8_ = undefined;
  2028.    var _loc6_ = undefined;
  2029.    _loc5_ = s2.getPV();
  2030.    _loc12_ = s2.getMaxPV();
  2031.    _loc9_ = s2.getDefesa();
  2032.    _loc8_ = s1.getINT();
  2033.    _loc6_ = s2.getINT();
  2034.    _loc4_ = Math.round(Math.random() * _loc8_);
  2035.    _loc3_ = _root.mg_valores[m][2] + _loc4_;
  2036.    _loc4_ = Math.round(Math.random() * _loc6_);
  2037.    if(_loc9_ + _loc4_ > _loc3_)
  2038.    {
  2039.       _loc3_ = 0;
  2040.    }
  2041.    s2.setPV(_loc5_ - _loc3_);
  2042.    _loc11_ = 40;
  2043.    _loc7_ = Math.round(s2.getPV() * 100 / _loc12_);
  2044.    _root["sd" + j].barra._width = _loc11_ * _loc7_ / 100;
  2045.    _root["sd" + j].msg_dano.valor = "<font size=\'13\' color=\'#FFFFFF\'><b>" + _loc3_ + "</b></font>";
  2046.    _root["sd" + j].msg_dano.gotoAndPlay(1);
  2047. }
  2048. function atualizarFlecha()
  2049. {
  2050.    var _loc2_ = flechas.length;
  2051.    var _loc1_ = _loc2_ - 1;
  2052.    while(_loc1_ >= 0)
  2053.    {
  2054.       if(!flechas[_loc1_].ativa)
  2055.       {
  2056.          flechas.splice(_loc1_,1);
  2057.       }
  2058.       else
  2059.       {
  2060.          flechas[_loc1_].atualizar();
  2061.       }
  2062.       _loc1_ = _loc1_ - 1;
  2063.    }
  2064. }
  2065. function parei(i)
  2066. {
  2067.    if(tropa1.soldados[i].getClasse() == ARQ)
  2068.    {
  2069.       _root.fx.attachSound("arqueiro");
  2070.       _root.fx.start();
  2071.    }
  2072.    tropa1.soldados[i].atacando = false;
  2073.    _root["sd" + i].gotoAndStop("move" + tropa1.soldados[i].dirx + tropa1.soldados[i].diry);
  2074. }
  2075. System.useCodepage = true;
  2076. Stage.showMenu = false;
  2077. _quality = "MEDIUM";
  2078. _global.flechas = new Array();
  2079. _global.GRR = 0;
  2080. _global.ARQ = 1;
  2081. _global.CAV = 2;
  2082. _global.MAG = 3;
  2083. _global.CLR = 4;
  2084. _global.CLASSE = 0;
  2085. _global.PV = 1;
  2086. _global.PM = 2;
  2087. _global.ATQ = 3;
  2088. _global.DEF = 4;
  2089. _global.AGL = 5;
  2090. _global.INT = 6;
  2091. _global.MRL = 7;
  2092. _global.VALOR = 8;
  2093. _global.ALCANCE = 9;
  2094. var destino = "entrada";
  2095. var modoCampanha = true;
  2096. var espolios;
  2097. var rc_sel = 0;
  2098. var sd_sel = 0;
  2099. var opt_confirm = 1;
  2100. var sd_num_max = 15;
  2101. var sd_item_sel;
  2102. var it_selx;
  2103. var it_sely;
  2104. var it_depth;
  2105. var ld_sel = 0;
  2106. var rc_total_tmp;
  2107. var client;
  2108. var magiaAtiva = false;
  2109. var magia_sel;
  2110. var fundo_inicial = 15000;
  2111. var tarefa1;
  2112. var tarefa2;
  2113. var tarefa3;
  2114. var fx = new Sound();
  2115. var cenarios = new Array(new Array(0,1,"O Primeiro Confronto","O rei de G├írdia o convocou a reunir suas tropas e enfrentar o ex├⌐rcitos de Lemendau. Enfrente as tropas que defendem a fronteira do territ├│rio inimigo!",6000),new Array(1,1,"A Batalha de Pedegrim","Suas tropas movem-se aos extensos campos de Pedegrim, onde muitas batalhas j├í foram travadas. Tropas inimigas esperam pela sua chegada para mais um confronto!",8000),new Array(2,1,"O Cerco da Floresta","Um cerco se fechou contra sua tropa na densa Floresta Espi├ú. Escape dos arqueiros da tropa inimiga! Derrote todos os inimigos!",10000),new Array(3,1,"A Travessia do Deserto","A travessia do deserto prepara confrontos com tropas inimigas acampadas nos o├ísis. Prepare suas tropas para batalhar nas areias!!!",15000),new Array(4,0,"A Fortaleza da Bruma","Seu objetivo final se aproxima.\nO l├¡der do ex├⌐rcito inimigo, La Brum, protege a fortaleza da Bruma! Derrote-o e ven├ºa a guerra!",18000));
  2116. var nomes = new Array("Adriano","Karlisson","Rafael","Daniel","Rick","Valentin","Igor","Claudio","Carlos","Richard","Kevin","Allan","Nicholas","Fred","Andrew","Goku","Master","Saulo","Marcel","Lawrence","Brian","Willian","Peter","David","Ghandi","Madson","Geraldo","Matt","Christian","James","Stephen","Karl","Alan","Napole├úo","M@sTeR","Blair","Brandon","Paul","Mike","Bob","John","George","James","Bart","Kirotawa","Osama","Dennis","Roberto","Ronaldo","Marc","Hugo","Bruce","Reno","Homer","Guin├⌐","Saddan","Johnson","Kaio","Dulmare","Yoda","Cicero","Paulo","Mateus","Elvis","Mario","Hittler","Jedd","Ashtar","Acacio","Ricardo","Rodrigo","Wagner","Helder","Greg├│rio","Bush","Jefferson","Martin","Kull","Vader","Anakin","Kenobi","Felipe","Vicente","Yoshi","Lula","Pedro","Victor","Rafael","Lucas","Aldrim","Darwin","Piccolo","Zeck","Geovanio","Theo","Paulo","Flavio","Artur","Luis","Vinicius","Eduardo","Edwin","Aladin","Gilson","Lucas","Isaac","Helder","Hugo","Phillips","Tyson","Gorgon","Axl","Leon","Sidney","Glauber","Stallman","Bill","Bozo","Alex","Eberton","Morrisey","Hagar","Brown","Dick","Alberto","Tux","Mauricio","Arthur","Silvio");
  2117. var sd_valores = new Array(new Array("Guerreiro",900,0,10,4,6,4,3,1000,1),new Array("Arqueiro",895,0,9,3,6,6,3,800,10),new Array("Cavaleiro",910,0,13,5,6,5,4,2000,1),new Array("Mago",880,150,7,3,5,20,6,1100,1),new Array("Cl├⌐rigo",878,60,6,2,5,16,7,900,1));
  2118. var it_valores = new Array(new Array(0,"Po├º├úo de cura",100,"PV",50),new Array(1,"Po├º├úo de magia",40,"PM",40),new Array(2,"Espada curta",14,"Ataque",80),new Array(3,"Espada larga",20,"Ataque",130),new Array(4,"Arco curto",22,"Ataque",90),new Array(5,"Arco Longo",30,"Ataque",170),new Array(6,"Lan├ºa curta",16,"Ataque",120),new Array(7,"Lan├ºa de guerra",22,"Ataque",140),new Array(8,"Cajado",13,"Ataque",60),new Array(9,"Cetro",20,"Ataque",110),new Array(10,"Escudo de ferro",5,"Defesa",80),new Array(11,"Escudo de guerra",10,"Defesa",160),new Array(12,"Armadura de ferro",6,"Defesa",90),new Array(13,"Armadura de a├ºo",10,"Defesa",170),new Array(14,"Manto",2,"Defesa",20),new Array(15,"Robe",6,"Defesa",40));
  2119. var mg_valores = new Array(new Array(0,"Fogo",40,20),new Array(1,"Raio",60,30),new Array(2,"Cura",100,5));
  2120. var ld1 = _root.createLider(1);
  2121. var ld2 = _root.createLider(2);
  2122. _global.tropa1 = new Tropa();
  2123. _global.grid;
  2124. _global.flechas = new Array();
  2125. _global.sizew = 18;
  2126. _global.sizeh = 14;
  2127. _global.x0 = -265;
  2128. _global.y0 = 320;
  2129. _global.dx = 40;
  2130. _global.dy = 20;
  2131. _global.vx = 2;
  2132. _global.vy = 1;
  2133. _global.EST_PARADO = 1;
  2134. _global.EST_MORRER = 2;
  2135. _global.EST_ATACAROFENSIVO = 3;
  2136. _global.EST_ATACARDEFENSIVO = 4;
  2137. _global.EST_PARADODEFENSIVO = 10;
  2138. _global.EST_DEFENDER = 5;
  2139. _global.EST_PERSEGUIR = 6;
  2140. _global.EST_RECUAR = 7;
  2141. _global.EST_OCIOSO = 8;
  2142. _global.EST_CURAR = 9;
  2143. _global.EST_PARADORECUO = 11;
  2144. _global.EST_FAZERRECUO = 12;
  2145. _global.selecionado;
  2146. _global.lado1 = 0;
  2147. _global.lado2 = 0;
  2148. _global.flechaAtual = 0;
  2149. _global.nivelSoldados = 1000;
  2150. _global.nivelFlechas = 3000;
  2151. _global.nivelCenarios = 50000;
  2152. _global.nivelPaineis = 60000;
  2153. _global.nivelMensagens = 70000;
  2154. var niveis = sizeh + sizew - 1;
  2155. _global.nivelAtual = new Array(niveis);
  2156. var i = 0;
  2157. while(i < niveis)
  2158. {
  2159.    nivelAtual[i] = 0;
  2160.    i++;
  2161. }
  2162.